﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace Skybot.NewWork.Graph
{
    /// <summary>
    /// 公共静态方法 
    /// </summary>
    public static class CommMethods
    {


        /// <summary>
        ///  中已知一任意点坐标是否在已知直线上的算法 
        ///  判断坐标点P到线段两端点(AB)的距离。
        ///  只要满足公式 AB=PA+PB 点P就在线段点上
        /// </summary>
        public static bool IsPointInLine(Point pt, Point lnstart, Point lnEnd)
        {
            double lenpt2start = Math.Sqrt(Math.Pow(pt.X - lnstart.X, 2) + Math.Pow(pt.Y - lnstart.Y, 2));
            double lenpt2end = Math.Sqrt(Math.Pow(pt.X - lnEnd.X, 2) + Math.Pow(pt.Y - lnEnd.Y, 2));
            double len = Math.Sqrt(Math.Pow(lnstart.X - lnEnd.X, 2) + Math.Pow(lnstart.Y - lnEnd.Y, 2));

            double result = ((lenpt2start + lenpt2end - len));
            //Math开方计算出来的结果可能会有点点误差
            //这里有大于小于 一个误差，这个数值是 点到直线的距离值
            return result > 60 && result < 200;

        }

    }
}
